Packet-switched networks are responsible for forwarding packet-based traffic. In some hardware devices, such as switches and routers, packets are broken into fixed-length cells and forwarded from an ingress, across a switching fabric, to an egress, where the cells are typically reassembled into packets.
For a system including a switching fabric with finite space, a cell may be forwarded from the ingress to the switching fabric at a time when the switching fabric is full. In this case, the system may have to drop the cell, resulting in data loss. Moreover, for a system including a scalable, shared memory switching fabric, when the size of the system increases, traffic control becomes increasingly difficult to manage.
In view of the desire to control flow in a scalable, shared memory switching fabric system, what is needed is a flow control mechanism that is efficient and scalable. It would also be advantageous to include additional flow control to ameliorate clock rate differences between the ingress or egress and switching fabric.